package ${basePackage}.${service};

import ${basePackage}.${entity}.${className}Entity;
import ${basePackage}.vo.${className}VO;
import ${basePackage}.pojo.Add${className}POJO;
import ${basePackage}.pojo.Update${className}POJO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;

import com.github.pagehelper.PageInfo;

/**
 * ${comment}
 * @author ${author}
 * @date ${createTime}
 */
public interface I${className}Service extends IService${r'<'}${className}Entity> {

    /**
     * 分页查询
     *
     * @param pageNum   分页参数
     * @param pageSize  分页参数
     * @param data      其他查询过滤参数
     * @return 分页列表数据
     */
    PageInfo${r'<'}${className}VO> pageList(int pageNum, int pageSize, ${className}VO data);

    /**
     * 查询一条数据
     *
    <#list pkColumns as column>
     * @param ${column.attrName} ${column.columnComment}
    </#list>
     * @return 一条数据
     */
    ${className}VO getOne(<#list pkColumns as column>${column.attrType} ${column.attrName}<#if column_has_next>, </#if></#list>);

    /**
     * 新增一条数据
     *
     * @param data         数据
     * @return 是否成功(false-失败，true-成功)
     **/
    boolean add(Add${className}POJO data);

    /**
     * 批量新增数据
     *
     * @param data        数据
     * @return 是否成功(false-失败，true-成功)
     **/
    boolean addBatch(List${r'<'}Add${className}POJO> data);

    /**
     * 更新数据
     *
     * @param data         数据
     * @return 是否成功(false-失败，true-成功)
     **/
    boolean modify(Update${className}POJO data);

    /**
    * 移除一条数据
    *
    <#list pkColumns as column>
    * @param ${column.attrName} ${column.columnComment}
    </#list>
    * @return 是否成功(false-失败，true-成功)
    */
    boolean removeOne(<#list pkColumns as column>${column.attrType} ${column.attrName}<#if column_has_next>, </#if></#list>);
}
